package cn.wolfcode.util;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;
import java.util.Map;

public class JwtUtils {
    private static  String Key = "wolfcode";
    private static  long expire = 1000*60*60*24*7;

/**
 * 生成JWT令牌的方法
 * @param claims 包含JWT声明的Map集合，用于存储用户信息等数据
 * @return 返回生成的JWT字符串
 */
    public static String generateJwt(Map<String,Object> claims){
        return Jwts.builder()                // 创建JWT构建器
                .setClaims(claims)           // 设置声明信息
                .signWith(SignatureAlgorithm.HS256, Key)  // 使用HS256算法和密钥进行签名
                .setExpiration(new Date(System.currentTimeMillis()+expire))  // 设置过期时间
                .compact();                  // 压缩生成JWT字符串
    }

    public static Claims parseJwt(String token){
        return Jwts.parser()
                .setSigningKey(Key)
                .parseClaimsJws(token)
                .getBody();
    }
}
